home *** CD-ROM | disk | FTP | other *** search
- /*
- kopeteawaydialog.h - Kopete Away Dialog
-
- Copyright (c) 2002 by Hendrik vom Lehn <hvl@linux-4-ever.de>
- Copyright (c) 2003 by Martijn Klingens <klingens@kde.org>
-
- Kopete (c) 2002-2003 by the Kopete developers <kopete-devel@kde.org>
-
- *************************************************************************
- * *
- * This library is free software; you can redistribute it and/or *
- * modify it under the terms of the GNU Lesser General Public *
- * License as published by the Free Software Foundation; either *
- * version 2 of the License, or (at your option) any later version. *
- * *
- *************************************************************************
- */
-
- #ifndef KOPETEAWAYDIALOG_H
- #define KOPETEAWAYDIALOG_H
-
- #include <kdialogbase.h>
- #include "kopete_export.h"
-
- namespace Kopete
- {
- class Away;
- }
-
- class KopeteAwayDialogPrivate;
-
- /**
- * KopeteAwayDialog is a base class used for implementing
- * Away Message selection dialogs in Kopete. It presents
- * the user with a list of pre-written away messages and
- * a line edit for them to type a "single shot" away message,
- * one that is not saved and will be lost the next time
- * they restart the application.
- *
- * Individual protocols should subclass this class for protocol
- * specific Away Message choosers (in the case that the user
- * wants to set only one protocol away). There are methods for
- * getting the message that the user selected, as well as a
- * virtual method that should be implemented that is called
- * when the user selects "OK", and should be used to do
- * protocol specific actions needed to set the user as
- * "Away" (or whatever the protocol calls it).
- *
- * @author Hendrik vom Lehn <hvl@linux-4-ever.de>
- * @author Christopher TenHarmsel <tenharmsel@users.sourceforge.net>
- */
-
- class KOPETE_EXPORT KopeteAwayDialog : public KDialogBase
- {
- Q_OBJECT
-
- public:
- /**
- * Constructor for the Away Dialog
- * @param parent The object that owns this
- * @param name Name for this object
- */
- KopeteAwayDialog( QWidget *parent = 0, const char *name = 0 );
-
- /**
- * Destructor
- */
- virtual ~KopeteAwayDialog();
-
- protected:
- /**
- * Do not delete this, this instance will
- * deleted when the application closes
- */
- Kopete::Away *awayInstance;
-
- /**
- * \brief Gets the last selected away message
- * @return An away message
- */
- QString getSelectedAwayMessage();
-
- /**
- * \brief Sets the user away
- *
- * This method is called when the user clicks
- * OK in the GUI, signalling that they wish
- * to set the away message that they have chosen.
- * Please reimplement this method to do protocol
- * specific things, and use getSelectedAwayMessage()
- * to get the text of the message that the user
- * selected.
- *
- * @param awayType This is the away type specified
- * if show was called with a parameter. If show() was called
- * instead, this parameter will be the empty string. You
- * will need to compare it to an enum that you declare
- * in your subclass.
- */
- virtual void setAway( int awayType ) = 0;
-
- /**
- * \brief Called when "Cancel" is clicked
- *
- * This method is called when the user clicks
- * Cancel in the GUI, signalling that they
- * canceled their request to mark themselves as
- * away. If your implementation finds this
- * information useful, implement this method
- * to handle this info. By default it does nothing
- *
- * @param awayType This is the away type specified
- * if show was called with a parameter, if show() was called
- * instead, this parameter will be the empty string.
- */
- virtual void cancelAway( int awayType );
-
- public slots:
- /**
- * \brief Shows the dialog
- */
- virtual void show();
-
- /**
- * \brief Shows the dialog
- *
- * Shows the away dialog, but maintains a "state"
- * so you can specify if you're setting away,
- * do not disturb, gone, etc for protocols that
- * support this like ICQ and MSN.
- *
- * This string does not have any special internal
- * meaning, but rather will get passed to setAway()
- * when it is called so that you can decide what
- * kind of "away" you really want to do.
- *
- * @param awayType The type of "away" you want to set.
- */
- void show( int awayType );
-
- protected slots:
- /**
- * This slot is called when the user click on "OK"
- * it will call setAway(), which is pure virtual and
- * should be implemented for specific needs
- */
- virtual void slotOk();
-
- /**
- * This slot is called when the user clicks on
- * "Cancel". It calls cancelAway(), which is
- * pure virtual and should be implemented to
- * fit your specific needs if the user selects
- * "Cancel". This method will close the
- * dialog, but if you require any specific actions
- * please implement them in cancelAway().
- */
- virtual void slotCancel();
-
- private slots:
- /**
- * \brief An entry was selected from the combo box
- */
- void slotComboBoxSelection( int index );
-
- private:
- /**
- * Initializes the GUI elements every time the
- * dialog is show. Basically used for remembering
- * the singleshot message that the user may have
- * typed in.
- */
- void init();
-
- /**
- * The last user-entered away text
- * or the title of the last selected
- * saved away message, whichever was
- * last chosen
- */
- QString mLastUserAwayMessage;
-
- /**
- * The last message that the user typed in the
- * line edit
- */
- QString mLastUserTypedMessage;
-
- /**
- * This is used to store the type of away that we're
- * going to go.
- */
- int mExtendedAwayType;
-
- KopeteAwayDialogPrivate *d;
- };
-
- #endif
-
- // vim: set noet ts=4 sts=4 sw=4:
-
-